<?php

class OrdersAction extends fvAction {
    
    function __construct () {
        parent::__construct(fvSite::$Layoult);
    }

    function executeIndex() {
        if (fvRequest::getInstance()->isXmlHttpRequest())
            return self::$FV_NO_LAYOULT;
        else return self::$FV_OK;
    }
    
    function executeShow() {
        if (fvRequest::getInstance()->isXmlHttpRequest())
            return self::$FV_AJAX_CALL;
        else return self::$FV_OK;
    }
    
	function executeDoc() {
		return self::$FV_AJAX_CALL;
    }
    
    function executeSave() {
        $request = fvRequest::getInstance();
        if (!$Order = OrderManager::getInstance()->getByPk($request->getRequestParameter('id'))) {
            $Order = new Order();
        }
        $m = $request->getRequestParameter('m');
        $Customer = CustomerManager::getInstance()->getByPk($Order->customer_id);
        if ($Order->status != $m['status']){
        	$mail = new html_mime_mail();
			$letter = "
                <html>
                <body>
                	Шановний (-а), {$Customer->full_name}!<p>
					Статус вашого замовлення змінено.<br>
					Докладніше про статус замовлення ви можете дізнатися в особистому кабінеті на сторінці замовлення.<p>
					
					Команда <a href='http://{$_SERVER["SERVER_NAME"]}/'>Крамниця-А</a>.
                </body>
                </html>";
			$mail->add_html($letter);
			$mail->build_message("w");
			$mail->SendMail("noreply@kramnyca.info",'Крамниця - А  |  Едине місце актуальних українських товарів',$Customer->email,$Customer->full_name, "Зміна статусу замовлення");
        }
        $Order->status = $m['status'];
        $Order->payment_status = $m['payment_status'];
        if ($Order->save()) {
            fvResponce::getInstance()->setHeader('Id', $Order->getPk());
            $this->setFlash("Данные успешно сохранены", self::$FLASH_SUCCESS);
        } else { 
            fvResponce::getInstance()->setHeader('X-JSON', json_encode($Order->getValidationResult()));
            $this->setFlash("Ошибка при сохранении данных проверьте правильность введенных данных", self::$FLASH_ERROR);
        }
        if ($request->getRequestParameter('redirect')) {
            fvResponce::getInstance()->setHeader('redirect', fvSite::$fvConfig->get('dir_web_root') . $request->getRequestParameter('module') . "/");
        }        
        if (fvRequest::getInstance()->isXmlHttpRequest())
            return self::$FV_AJAX_CALL;
        else return self::$FV_OK;
    }

    function executeTake() {
        $request = fvRequest::getInstance();
        
        if (!$Order = OrderManager::getInstance()->getByPk($request->getRequestParameter('id'))) {
            $Order = new Order();
        }
        
        $Order->manager_id = fvSite::$fvSession->getUser()->getPk();
        $Customer = CustomerManager::getInstance()->getByPk($Order->customer_id);
        $Order->status = 'inwork'; 
        if ($Order->save()) {
        	$mail = new html_mime_mail();
			$letter = "
                <html>
                <body>
                	Шановний (-а), {$Customer->full_name}!<p>
					Статус вашого замовлення змінено.<br>
					Менеджер прийняв ваше замовлення до розгляду.<br>
					Докладніше про статус замовлення ви можете дізнатися в особистому кабінеті на сторінці замовлення.<p>
					
					Команда <a href='http://{$_SERVER["SERVER_NAME"]}/'>Крамниця-А</a>.
                </body>
                </html>";
			$mail->add_html($letter);
			$mail->build_message("w");
			$mail->SendMail("noreply@kramnyca.info",'Крамниця - А  |  Едине місце актуальних українських товарів',$Customer->email,$Customer->full_name, "Замовлення прийнято до розгляду.");
            fvResponce::getInstance()->setHeader('Id', $Order->getPk());
            $this->setFlash("Заказ успешно закреплён за вами", self::$FLASH_SUCCESS);
        } else { 
            fvResponce::getInstance()->setHeader('X-JSON', json_encode($Order->getValidationResult()));
            $this->setFlash("Ошибка!!! Возможно другой менеджер уже взял заказ к исполнению", self::$FLASH_ERROR);
        }
        fvResponce::getInstance()->setHeader('redirect', fvSite::$fvConfig->get('dir_web_root') . $request->getRequestParameter('module') . "/");
    }  

	function executeDelete() {
		$request = fvRequest::getInstance();
		if (!$Order = OrderManager::getInstance()->getByPk($request->getRequestParameter('id'))) {
			$this->setFlash("Ошибка при удалении.", self::$FLASH_ERROR);
		} else {
			$Order->delete();
			$this->setFlash("Данные успешно удалены", self::$FLASH_SUCCESS);
		}

		fvResponce::getInstance()->setHeader('redirect', fvSite::$fvConfig->get('dir_web_root') . $request->getRequestParameter('module') . "/");
		if (fvRequest::getInstance()->isXmlHttpRequest())
			return self::$FV_NO_LAYOULT;
		else return self::$FV_OK;
	}
}

?>
